그래프 탐색 그래프 탐색의 기본, DFS와 BFS DFS는 깊이 우선 탐색. 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료구조(혹은 재귀 함수) 이용 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 너비 우선 탐색... 그래프 탐색BFS알고리즘DFSBFS 이코테 강의 정리 - DFS/BFS 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있음 → 자주 출제됨 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조 입구와 출구가 동일한 형태로 스택을 시각화할 수 있음 먼저 들어온 데이터가 먼저 나가는 형식(선입선출) 자료구조 모든 재귀 함수는 반복문을 이용하여 동일한 기능을 구현할 수 있음 재귀 함수가 반복문보다 유리한 경우도 있고 불리한 경우도 있음 컴퓨터가 함수를... 그래프 탐색이코테그래프 탐색 백준 문제 풀이 - 단지번호붙이기 2667번 <그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. <그림 2>는 <그림 1>을 단지별로 번호를 붙인 것이다.... 그래프 탐색너비 우선 탐색깊이 우선 탐색그래프 이론그래프 이론 DFS와 BFS - 백준(1260, 그래프 탐색) 🎯 DFS와 BFS 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언, 방문 여부를 판단한 1차원 배열 선언 간선을 입력 받으면서 2차원 배열에 각각 넣어준다.ex) 1 2 입력 시 => 1 ➡ 2 , 2 ➡ 1 BFS 함수 구현 Integer 타입의 Queue 선언 시작 index Queue에 추가 및 시작 점 방문 처리 2차원 배열 탐색하면서 연결 된 점 Queue 추가 및 방문 처... 그래프 탐색그래프 이론BFS코딩테스트DFS코테백준BFS [Algorithm]그래프 탐색(BFS / DFS) 배열의 특정 구간을 연속적으로 처리하는 알고리즘이다. 배열에서 연속된 데이터 구간에서 처리하기를 원하거나, 정렬된 두 배열이 문제 조건에 있다면, 투포인터 알고리즘을 의심해봐야 한다. 🧐 알고리즘 시작점(start)과 끝점(end)이 첫 번째 원소의 인덱스(0)를 가리키도록 한다. 현재 부분 합이 M과 같다면, 카운트한다. 현재 부분 합이 M보다 작거나 같다면, end를 1 증가시킨다. 현재... 그래프 탐색DFSBFSalgorithmBFS BOJ16928 뱀과 사다리 게임 문제 실버I | 백준 16928 | Python3 파이썬 풀이 알고리즘 사다리와 뱀은 딕셔너리에 저장해놓는다. 나머지는 BFS를 이용해 모든 칸을 탐색하며 끝 칸에 도착하게 되는 노드의 순서를 출력한다. 코드 결과... BFS그래프 이론그래프 탐색BFS 토마토 (백준 7659 -파이썬) bfs 개념을 어느정도 익힌듯해서 답을 안 찾아보고 끝까지 풀어보고 싶었다. 결국 혼자 풀어냈지만 꽤 오래 걸렸다. 3차원 문제는 처음인데 재밌넹 풀이 필요 요소 1. 데이터 담을 3차원 배열 2. 날이 지날 때마다 익은 갯수를 세어주는 변수 3. 익은 토마토 주변을 탐색하기 위해 익은 토마토 좌표를 저장할 큐 4. 동서남북위아래 방향 데이터 (선택) 로직 순서 1. 데이터들을 3차원에 받으... 백준BFS그래프 탐색너비 우선 탐색알고리즘BFS [C++] 백준 13565번: 침투 문제 링크 문제 요약 섬유 물질의 바깥쪽에서 흘려 준 전류가 안쪽까지 침투될 수 있는지 아닌지 판단하는 프로그램을 작성해야 한다. 섬유 물질은 격자로 이루어져 있는데, 격자의 색이 검은색이면 전류를 차단하는 물질이고, 흰색이면 전류가 통하는 물질이다. 접근 방법 간단한 그래프 탐색 문제였습니다. 위쪽 부분을 하나의 정점으로 보고, 아래쪽 부분을 하나의 정점으로 생각할 수 있습니다. 이때, 위... 너비 우선 탐색그래프 탐색그래프 이론백준그래프 이론 [백준 1260번] DFS와 BFS 알고리즘그래프 탐색DFS백준BFSBFS 백준 3584, 가장 가까운 공통 조상 - Tree, DFS, DP, LCA (Lowest Common Ancestor) 입력 트리 노드 정보가 "부모 노드 - 자식 노드" 형태로 주어짐 1) 모든 노드의 깊이, 2^0 번째 부모 (직계 부모) 저장 2) 모든 노드의 2^i 번째 부모 저장 DP 배열 (Sparse Table): int[][] parent = new int[n][21]; n: 트리 노드 개수, 21: 트리 깊이 20이면 충분 parent[nodeIdx][i]: 노드의 2^i 번째 부모 노드의 2... 깊이 우선 탐색Lowest Common Ancestor백준 3584 가장 가까운 공통 조상알고리즘최소 공통 조상dynamic programming코딩 테스트tree그래프 탐색depth first search트리DFS다이나믹 프로그래밍DPLCADFS DFS / BFS 그래프 탐색 탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 재귀함수는 내부적으로 스택 자료구조와 동일하기 때문에 스택을 활용하는 알고리즘을 간편하게 구현할 수 있다. 인접 행렬 : 2차원 배열로 그래프의 연결 관계를 표현하는 방식 인접 리스트 : 리스트로 그래프의 연결 관계를 표현하는 방식 인접 리스트 방식은 연결된 정보만을 저장하기 때문에 메모리를 효율적으로 사용하지만 특정 두 노드가 연... 알고리즘그래프 탐색DFS파이썬BFSBFS
그래프 탐색의 기본, DFS와 BFS DFS는 깊이 우선 탐색. 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료구조(혹은 재귀 함수) 이용 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 너비 우선 탐색... 그래프 탐색BFS알고리즘DFSBFS 이코테 강의 정리 - DFS/BFS 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있음 → 자주 출제됨 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조 입구와 출구가 동일한 형태로 스택을 시각화할 수 있음 먼저 들어온 데이터가 먼저 나가는 형식(선입선출) 자료구조 모든 재귀 함수는 반복문을 이용하여 동일한 기능을 구현할 수 있음 재귀 함수가 반복문보다 유리한 경우도 있고 불리한 경우도 있음 컴퓨터가 함수를... 그래프 탐색이코테그래프 탐색 백준 문제 풀이 - 단지번호붙이기 2667번 <그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. <그림 2>는 <그림 1>을 단지별로 번호를 붙인 것이다.... 그래프 탐색너비 우선 탐색깊이 우선 탐색그래프 이론그래프 이론 DFS와 BFS - 백준(1260, 그래프 탐색) 🎯 DFS와 BFS 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언, 방문 여부를 판단한 1차원 배열 선언 간선을 입력 받으면서 2차원 배열에 각각 넣어준다.ex) 1 2 입력 시 => 1 ➡ 2 , 2 ➡ 1 BFS 함수 구현 Integer 타입의 Queue 선언 시작 index Queue에 추가 및 시작 점 방문 처리 2차원 배열 탐색하면서 연결 된 점 Queue 추가 및 방문 처... 그래프 탐색그래프 이론BFS코딩테스트DFS코테백준BFS [Algorithm]그래프 탐색(BFS / DFS) 배열의 특정 구간을 연속적으로 처리하는 알고리즘이다. 배열에서 연속된 데이터 구간에서 처리하기를 원하거나, 정렬된 두 배열이 문제 조건에 있다면, 투포인터 알고리즘을 의심해봐야 한다. 🧐 알고리즘 시작점(start)과 끝점(end)이 첫 번째 원소의 인덱스(0)를 가리키도록 한다. 현재 부분 합이 M과 같다면, 카운트한다. 현재 부분 합이 M보다 작거나 같다면, end를 1 증가시킨다. 현재... 그래프 탐색DFSBFSalgorithmBFS BOJ16928 뱀과 사다리 게임 문제 실버I | 백준 16928 | Python3 파이썬 풀이 알고리즘 사다리와 뱀은 딕셔너리에 저장해놓는다. 나머지는 BFS를 이용해 모든 칸을 탐색하며 끝 칸에 도착하게 되는 노드의 순서를 출력한다. 코드 결과... BFS그래프 이론그래프 탐색BFS 토마토 (백준 7659 -파이썬) bfs 개념을 어느정도 익힌듯해서 답을 안 찾아보고 끝까지 풀어보고 싶었다. 결국 혼자 풀어냈지만 꽤 오래 걸렸다. 3차원 문제는 처음인데 재밌넹 풀이 필요 요소 1. 데이터 담을 3차원 배열 2. 날이 지날 때마다 익은 갯수를 세어주는 변수 3. 익은 토마토 주변을 탐색하기 위해 익은 토마토 좌표를 저장할 큐 4. 동서남북위아래 방향 데이터 (선택) 로직 순서 1. 데이터들을 3차원에 받으... 백준BFS그래프 탐색너비 우선 탐색알고리즘BFS [C++] 백준 13565번: 침투 문제 링크 문제 요약 섬유 물질의 바깥쪽에서 흘려 준 전류가 안쪽까지 침투될 수 있는지 아닌지 판단하는 프로그램을 작성해야 한다. 섬유 물질은 격자로 이루어져 있는데, 격자의 색이 검은색이면 전류를 차단하는 물질이고, 흰색이면 전류가 통하는 물질이다. 접근 방법 간단한 그래프 탐색 문제였습니다. 위쪽 부분을 하나의 정점으로 보고, 아래쪽 부분을 하나의 정점으로 생각할 수 있습니다. 이때, 위... 너비 우선 탐색그래프 탐색그래프 이론백준그래프 이론 [백준 1260번] DFS와 BFS 알고리즘그래프 탐색DFS백준BFSBFS 백준 3584, 가장 가까운 공통 조상 - Tree, DFS, DP, LCA (Lowest Common Ancestor) 입력 트리 노드 정보가 "부모 노드 - 자식 노드" 형태로 주어짐 1) 모든 노드의 깊이, 2^0 번째 부모 (직계 부모) 저장 2) 모든 노드의 2^i 번째 부모 저장 DP 배열 (Sparse Table): int[][] parent = new int[n][21]; n: 트리 노드 개수, 21: 트리 깊이 20이면 충분 parent[nodeIdx][i]: 노드의 2^i 번째 부모 노드의 2... 깊이 우선 탐색Lowest Common Ancestor백준 3584 가장 가까운 공통 조상알고리즘최소 공통 조상dynamic programming코딩 테스트tree그래프 탐색depth first search트리DFS다이나믹 프로그래밍DPLCADFS DFS / BFS 그래프 탐색 탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 재귀함수는 내부적으로 스택 자료구조와 동일하기 때문에 스택을 활용하는 알고리즘을 간편하게 구현할 수 있다. 인접 행렬 : 2차원 배열로 그래프의 연결 관계를 표현하는 방식 인접 리스트 : 리스트로 그래프의 연결 관계를 표현하는 방식 인접 리스트 방식은 연결된 정보만을 저장하기 때문에 메모리를 효율적으로 사용하지만 특정 두 노드가 연... 알고리즘그래프 탐색DFS파이썬BFSBFS